package interview;

public class sougou01 {
    public static int numberofprize(int a, int b, int c){
        int res = Math.min(a,Math.min(b,c));
        // 进行一个手动模拟
        while (Math.min(a,Math.min(b,c)) >= res){
            // 第一次减，从最大的数开始减
            if (a >= b && a>= c){
                a--;
            }else if (b >= a && b >= c){
                b--;
            }else if (c >= a && c >= b){
                c--;
            }

            // 第二次减 选出这时最大的数
            if (a >= b && a >= c){
                if (b > c){// 从最大的数减1，最小的数加1 这里判断出c最小
                    a--;
                    c++;
                }else {
                    a--;
                    b++;
                }
            }else if (b >= a && b >= c){
                if (a > c){
                    b--;
                    c++;
                }else {
                    b--;
                    a++;
                }
            }else if (c >= a && c >= b){
                if (a > b){
                    c--;
                    b++;
                }else {
                    c--;
                    a++;
                }
            }
            res = Math.max(res,Math.min(a,Math.min(b,c)));
            // 因为这是要求最多换多少份，所以必须要选出最大的，当按照上述方法进行处理后可能比原来的小，这是就选最大的res，而且出现这种情况就说明已经找到了最佳的情况了
        }
        return res;
    }

    public static void main(String[] args) {
        System.out.println(numberofprize(3, 3, 3));
    }

}
